package cn.tedu.ximart.server.mapper;


import cn.tedu.ximart.server.pojo.entity.AttributeTemplate;
import cn.tedu.ximart.server.pojo.vo.AttributeTemplateDetailVO;
import cn.tedu.ximart.server.pojo.vo.AttributeTemplateListItemVO;
import org.springframework.stereotype.Repository;

import java.util.List;


@Repository
public interface AttributeTemplateMapper {
    /**
     * 插入属性模板数据
     * @param attributeTemplate 属性模板数据
     * @return 受影响的行，成功插入数据返回值为1
     */
    int insert(AttributeTemplate attributeTemplate);

    /**
     * 根据id删除属性模板数据
     * @param id 期望删除的属性模板的id
     * @return 受影响的行，成功删除数据返回值为1，如果无此id对应的数据返回0
     */
    int deleteById(Long id);


    /**
     * 根据id批量删除属性模板数据
     * @param id 期望批量删除的属性模板的id
     * @return 受影响的行，返回值为成功删除的数据量
     */
    int deleteByIds(Long... id);


    /**
     * 查询属性模板数量
     * @return 返回值为查询到的属性模板数量
     */
    int count();

    /**
     * 根据属性模板的名字查询数据条数
     * @param name  属性模板的名字
     * @return 查询到的数据条数
     */
    int countByName(String name);

    /**
     * 根据id查询属性模板详情
     * @param id 期望查询的id
     * @return 返回值为查询到的数据，如果无此id对应的数据则返回null.
     */
    AttributeTemplateDetailVO getById(Long id);

    /**
     * 查询相属性的列表项
     * @return 返回值为查询到数据集合
     */
    List<AttributeTemplateListItemVO> list();
}
